package com.hbzhit.modules.sys.service;

import com.hbzhit.modules.sys.entity.SysUserEntity;
import com.hbzhit.modules.sys.entity.SysUserTokenEntity;
import com.hbzhit.modules.sys.vo.SysLoginVO;
import com.hbzhit.modules.sys.vo.SysMenuQueryVO;

import java.util.Set;

/**
 * shiro相关接口
 *
 * @author Mark sunlightcs@gmail.com
 */
public interface ShiroService {

    /**
     * 登陆
     */
    SysUserEntity login(SysLoginVO form, String tokenType, String ip);

    /**
     * 获取用户权限列表
     */
    Set<String> getUserPermissions(SysMenuQueryVO params);

    /**
     * 获取用户Token
     */
    SysUserTokenEntity queryByToken(String token);

    /**
     * 根据用户ID，查询用户
     */
    SysUserEntity queryUser(Long userId);

    /**
     * 退出，修改token值
     * @param userId  用户ID
     */
    void logout(long userId);

}
